<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
<title>计算机网络</title><style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospace; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; tab-size: 4; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 40px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
@media screen and (max-width: 500px) {
  body.typora-export { padding-left: 0px; padding-right: 0px; }
  #write { padding-left: 20px; padding-right: 20px; }
  .CodeMirror-sizer { margin-left: 0px !important; }
  .CodeMirror-gutters { display: none !important; }
}
#write li > figure:last-child { margin-bottom: 0.5rem; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; }
button, input, select, textarea { color: inherit; font: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
p { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 2; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px !important; }
tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
.CodeMirror-linenumber { user-select: none; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
.md-diagram-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
  body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; }
  #write { margin-top: 0px; padding-top: 0px; border-color: transparent !important; }
  .typora-export * { -webkit-print-color-adjust: exact; }
  html.blink-to-pdf { font-size: 13px; }
  .typora-export #write { padding-left: 32px; padding-right: 32px; padding-bottom: 0px; break-after: avoid; }
  .typora-export #write::after { height: 0px; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
[contenteditable="true"]:active, [contenteditable="true"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
  .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
  .md-toc-h4 .md-toc-inner { margin-left: 5em; }
  .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
  .md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.8; font-family: var(--monospace); }
code { text-align: left; vertical-align: initial; }
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
.md-inline-math .MathJax_SVG .noError { display: none !important; }
.html-for-mac .inline-math-svg .MathJax_SVG { vertical-align: 0.2px; }
.md-math-block .MathJax_SVG_Display { text-align: center; margin: 0px; position: relative; text-indent: 0px; max-width: none; max-height: none; min-height: 0px; min-width: 100%; width: auto; overflow-y: hidden; display: block !important; }
.MathJax_SVG_Display, .md-inline-math .MathJax_SVG_Display { width: auto; margin: inherit; display: inline-block !important; }
.MathJax_SVG .MJX-monospace { font-family: var(--monospace); }
.MathJax_SVG .MJX-sans-serif { font-family: sans-serif; }
.MathJax_SVG { display: inline; font-style: normal; font-weight: 400; line-height: normal; zoom: 90%; text-indent: 0px; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; }
.MathJax_SVG * { transition: none 0s ease 0s; }
.MathJax_SVG_Display svg { vertical-align: middle !important; margin-bottom: 0px !important; margin-top: 0px !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="mermaid"] svg, [lang="flow"] svg { max-width: 100%; height: auto; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }


html { font-size: 16px; }
body { background: rgb(255, 255, 255); font-family: "Source Han Sans SC", sans-serif; color: rgb(85, 85, 85); }
#write { max-width: 60em; margin: 0px auto; padding: 20px 30px 50px; }
h1, h2, h3, h4, h5, h6 { position: relative; margin-top: 1em; margin-bottom: 1em; font-weight: bold; line-height: 1.4em; }
h1 { font-size: 2em; line-height: 1.2em; }
h2 { font-size: 1.5em; line-height: 1.225em; }
h3 { font-size: 1.3em; line-height: 1.43em; }
h4 { font-size: 1.2em; }
h5 { font-size: 1em; }
h6 { font-size: 1em; color: rgb(153, 153, 153); }
hr { border: 1px solid rgb(221, 221, 221); }
a { text-decoration: none; color: rgb(37, 143, 184); }
a:hover, a:active { text-decoration: underline; }
ul, ol { padding-left: 2em; }
.task-list { padding-left: 2em; }
.task-list-item { padding-left: 1.6em; }
.task-list-item input { top: 3px; left: 8px; }
table { width: 100%; border-collapse: collapse; border-spacing: 0px; }
table th { font-weight: bold; border-bottom: 3px solid rgb(221, 221, 221); padding-bottom: 0.5em; }
table td { border-bottom: 1px solid rgb(221, 221, 221); padding: 10px 0px; }
blockquote { border-left: 5px solid rgb(221, 221, 221); padding-left: 0.5em; font-family: "Source Han Serif SC", serif; color: rgb(85, 85, 85); }
blockquote blockquote { padding-right: 0px; }
.md-fences, code, tt { margin: 0px 0.3em; padding: 0px 0.3em; background: rgb(238, 238, 238); font-family: mononoki, monospace; text-shadow: rgb(255, 255, 255) 0px 1px; }
.md-fences { margin: 15px auto; padding: 0.7em 1em; text-shadow: none; }
.cm-s-inner.CodeMirror { background-color: rgb(38, 50, 56); color: rgb(233, 237, 237); }
.cm-s-inner .CodeMirror-gutters { background: rgb(38, 50, 56); color: rgb(83, 127, 126); border: none; }
.cm-s-inner .CodeMirror-guttermarker, .cm-s-inner .CodeMirror-guttermarker-subtle, .cm-s-inner .CodeMirror-linenumber { color: rgb(83, 127, 126); }
.cm-s-inner .CodeMirror-cursor { border-left: 1px solid rgb(248, 248, 240); }
.cm-s-inner div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
.cm-s-inner.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.1); }
.cm-s-inner .CodeMirror-line::selection, .cm-s-inner .CodeMirror-line > span::selection, .cm-s-inner .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.1); }
.cm-s-inner .CodeMirror-activeline-background { background: rgba(0, 0, 0, 0); }
.cm-s-inner .cm-keyword { color: rgb(199, 146, 234); }
.cm-s-inner .cm-operator { color: rgb(233, 237, 237); }
.cm-s-inner .cm-variable-2 { color: rgb(128, 203, 196); }
.cm-s-inner .cm-variable-3, .cm-s-inner .cm-type { color: rgb(130, 177, 255); }
.cm-s-inner .cm-builtin { color: rgb(222, 203, 107); }
.cm-s-inner .cm-atom { color: rgb(247, 118, 105); }
.cm-s-inner .cm-number { color: rgb(247, 118, 105); }
.cm-s-inner .cm-def { color: rgb(233, 237, 237); }
.cm-s-inner .cm-string { color: rgb(195, 232, 141); }
.cm-s-inner .cm-string-2 { color: rgb(128, 203, 196); }
.cm-s-inner .cm-comment { color: rgb(84, 110, 122); }
.cm-s-inner .cm-variable { color: rgb(130, 177, 255); }
.cm-s-inner .cm-tag { color: rgb(128, 203, 196); }
.cm-s-inner .cm-meta { color: rgb(128, 203, 196); }
.cm-s-inner .cm-attribute { color: rgb(255, 203, 107); }
.cm-s-inner .cm-property { color: rgb(128, 203, 174); }
.cm-s-inner .cm-qualifier { color: rgb(222, 203, 107); }
.cm-s-inner .cm-variable-3, .cm-s-inner .cm-type { color: rgb(222, 203, 107); }
.cm-s-inner .cm-tag { color: rgb(255, 83, 112); }
.cm-s-inner .cm-error { color: rgb(255, 255, 255); background-color: rgb(236, 95, 103); }
.cm-s-inner .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
.md-fences { background-color: rgb(38, 50, 56); color: rgb(233, 237, 237); border: none; }
.md-fences .code-tooltip { background-color: rgb(38, 50, 56); }
.cm-s-typora-default { background-color: rgb(38, 50, 56); color: rgb(233, 237, 237); }
.cm-s-typora-default .CodeMirror-gutters { background: rgb(38, 50, 56); color: rgb(83, 127, 126); border: none; }
.cm-s-typora-default .CodeMirror-guttermarker, .cm-s-typora-default .CodeMirror-guttermarker-subtle, .cm-s-typora-default .CodeMirror-linenumber { color: rgb(83, 127, 126); }
.cm-s-typora-default .CodeMirror-cursor { border-left: 1px solid rgb(248, 248, 240); }
.cm-s-typora-default div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
.cm-s-typora-default.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.1); }
.cm-s-typora-default .CodeMirror-line::selection, .cm-s-typora-default .CodeMirror-line > span::selection, .cm-s-typora-default .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.1); }
.cm-s-typora-default .CodeMirror-activeline-background { background: rgba(0, 0, 0, 0); }
.cm-s-typora-default .cm-keyword { color: rgb(199, 146, 234); }
.cm-s-typora-default .cm-operator { color: rgb(233, 237, 237); }
.cm-s-typora-default .cm-variable-2 { color: rgb(128, 203, 196); }
.cm-s-typora-default .cm-variable-3 { color: rgb(130, 177, 255); }
.cm-s-typora-default .cm-builtin { color: rgb(222, 203, 107); }
.cm-s-typora-default .cm-atom { color: rgb(247, 118, 105); }
.cm-s-typora-default .cm-number { color: rgb(247, 118, 105); }
.cm-s-typora-default .cm-def { color: rgb(233, 237, 237); }
.cm-s-typora-default .cm-string { color: rgb(195, 232, 141); }
.cm-s-typora-default .cm-string-2 { color: rgb(128, 203, 196); }
.cm-s-typora-default .cm-comment { color: rgb(84, 110, 122); }
.cm-s-typora-default .cm-variable { color: rgb(130, 177, 255); }
.cm-s-typora-default .cm-tag { color: rgb(128, 203, 196); }
.cm-s-typora-default .cm-meta { color: rgb(128, 203, 196); }
.cm-s-typora-default .cm-attribute { color: rgb(255, 203, 107); }
.cm-s-typora-default .cm-property { color: rgb(128, 203, 174); }
.cm-s-typora-default .cm-qualifier { color: rgb(222, 203, 107); }
.cm-s-typora-default .cm-variable-3 { color: rgb(222, 203, 107); }
.cm-s-typora-default .cm-tag { color: rgb(255, 83, 112); }
.cm-s-typora-default .cm-error { color: rgb(255, 255, 255); background-color: rgb(236, 95, 103); }
.cm-s-typora-default .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
.md-fences { background-color: rgb(38, 50, 56); color: rgb(233, 237, 237); border: none; }
.md-fences .code-tooltip { background-color: rgb(38, 50, 56); }
.CodeMirror div.CodeMirror-cursor { border-left: 1px solid rgb(228, 98, 154); }
#write pre.md-meta-block { padding: 1em; background-color: rgb(255, 255, 255); border-bottom: 1px dashed rgb(221, 221, 221); color: rgb(128, 203, 196); margin-top: 0px !important; }
.md-image > .md-meta { color: inherit; }
header, .context-menu, .megamenu-content, footer { font-family: "Source Han Sans SC", sans-serif; }
@media print {
  html { font-size: 13px; }
  table, pre { break-inside: avoid; }
  pre { overflow-wrap: break-word; }
}
header, .context-menu, .megamenu-content, footer { font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif; }
.md-diagram-panel-preview { color: rgb(38, 50, 56); }

 .typora-export li, .typora-export p, .typora-export,  .footnote-line {white-space: normal;} 
</style>
</head>
<body class='typora-export os-windows' >
<div  id='write'  class = 'is-node'><h1><a name="计算机网络" class="md-header-anchor"></a><span>计算机网络</span></h1><h2><a name="家庭网路" class="md-header-anchor"></a><span>家庭网路</span></h2><p><strong><span>ISP</span></strong><span>：Internet Service Provider，互联网服务提供商，电信联通什么的。</span><br/><strong><span>宽带</span></strong><span>：宽敞的网络信号传输带，能正常上网不卡顿的网络连接就是宽带，但是具体需要有多快，这个标准是在变的。我认为凡是能接上互联网的，都叫宽带。</span></p><h3><a name="宽带接入技术" class="md-header-anchor"></a><span>宽带接入技术</span></h3><p><strong><span>ADSL</span></strong><span>：网络信号走电话线，也就是铜线，需要用到一个ADSL的调制解调器。</span><br/><strong><span>HFC</span></strong><span>：网络信号走有线电视线，到小区光纤节点后转成光信号走光纤。</span><br/><strong><span>FTTx</span></strong><span>：光纤宽带，直接把电信号转成光信号，走光纤。比如FTTZ（光纤到小区）、 FTTB（光纤到大楼）</span></p><h3><a name="以太网" class="md-header-anchor"></a><span>以太网</span></h3><p><span>以太网是局域网的一种实现技术，是物理层的东西。局域网、广域网、互联网是一类概念，而以太网是局域网的一种，但是由于以太网太流行了，所以以太网就可以指代局域网。</span><br/><span>IEE 802.3是物理层的协议，与以太网的协议兼容，所以IEE 802.3可以用来指代以太网。</span></p><h3><a name="拨号上网pppoe" class="md-header-anchor"></a><span>拨号上网PPPoE</span></h3><p><span>PPPoE是拨号网络总的PPP协议在以太网上的实现，属于数据链路层。他是一种点到点的协议，所谓点到点就是两个设备通过网线直连，中间不经过其他设备，数据链路层除了点到点类型的协议，还有一种广播类型的协议，没见过，不管。</span><br/><span>PPPoE有身份验证和计费的功能，是目前用的最多的数据链路层协议，现在电脑上网用的也都是拨号上网的方式。</span></p><h2><a name="网络分层模型" class="md-header-anchor"></a><span>网络分层模型</span></h2><p><span>现实中的协议对应TCP/IP中的分层，而不是OSI中的分层，比如DNS属于应用层</span></p><figure><table><thead><tr><th><span>OSI七层网络模型</span></th><th><span>TCP/IP四层模型</span></th><th><span>对应网络协议</span></th><th><span>数据</span></th><th><span>设备</span></th></tr></thead><tbody><tr><td><span>应用层</span></td><td><span>应用层</span></td><td><span>HTTP, FTP, NFS, WAIS、SMTP</span></td><td><span>消息</span></td><td>&nbsp;</td></tr><tr><td><span>表示层</span></td><td>&nbsp;</td><td><span>Telnet, Rlogin, SNMP, Gopher</span></td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td><span>会话层</span></td><td>&nbsp;</td><td><span>SMTP, DNS</span></td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td><span>传输层</span></td><td><span>传输层</span></td><td><span>TCP, UDP</span></td><td><span>数据段</span></td><td>&nbsp;</td></tr><tr><td><span>网络层</span></td><td><span>网络层</span></td><td><span>P, ICMP, ARP, RARP, AKP</span></td><td><span>数据包</span></td><td><span>路由器</span></td></tr><tr><td><span>数据链路层</span></td><td><span>网络接口层</span></td><td><span>FDDI, Ethernet, PDN, SLIP, PPP</span></td><td><span>数据帧</span></td><td><span>交换机</span></td></tr><tr><td><span>物理层</span></td><td>&nbsp;</td><td><span>IEEE 802.1A, IEEE 802.2</span></td><td>&nbsp;</td><td><span>集线器、中继器</span></td></tr></tbody></table></figure><p><img src='images/计算机网络_2af488004591cbc12cd82c44518523de.gif' alt='计算机网络_2af488004591cbc12cd82c44518523de' referrerPolicy='no-referrer' /></p><h2><a name="ip地址与子网掩码" class="md-header-anchor"></a><span>ip地址与子网掩码</span></h2><figure><table><thead><tr><th>&nbsp;</th><th><span>全部</span></th><th><span>私有</span></th></tr></thead><tbody><tr><td><span>A类</span></td><td><code>[1.0.0.0, 126.0.0.0]</code></td><td><code>[10.0.0.0, 10.255.255.255]</code></td></tr><tr><td><span>B类</span></td><td><code>[128.0.0.0, 191.255.255.255]</code></td><td><code>172.16.0.0, 172.31.255.255]</code></td></tr><tr><td><span>C类</span></td><td><code>[192.0.0.0, 223.255.255.255]</code></td><td><code>[192.168.0.0,192.168.255.255]</code></td></tr></tbody></table></figure><p><strong><span>本地回环地址</span></strong><span>：127.0.0.1，指代本机。</span><br/><strong><span>0.0.0.0</span></strong><span>：指代网络中的所有未在路由表中的ip地址。在路由表中0.0.0.0作为目标地址，其网关地址就是默认网关，意思就是把不知道位置的地址全发到默认网关。</span><br/><strong><span>广播地址</span></strong><span>：主机号全是255的地址，给广播地址发消息会发给该网段的全部主机。</span></p><p><span>IP地址分为网络部分和主机部分，比如C类地址的前三个是网络部分，后一个是主机部分。子网掩码中1表示是网络部分，0表示是主机部分。比如255.255.255.0表示前三个是网络部分，后一个是主机部分。</span><br/><span>子网掩码的作用是通过将主机部分的位划分给网络部分，达到划分子网的作用。比如255.255.255.128作用于C类IP地址，就是将1位主机地址给了网络地址。另一种写法是192.0.0.1/25，意思是这个ip地址的前25位是网络部分。</span></p><h3><a name="localhost与127.0.0.1的区别" class="md-header-anchor"></a><span>localhost与127.0.0.1的区别</span></h3><p><span>localhost不通过网卡传输，不受防火墙和网卡限制；而127.0.0.1依赖于网卡，会受到防火墙和网卡的限制。</span><br/><span>localhost访问时带着本机当前用户的权限；而用IP访问时，是通过网络去访问主机，涉及到网络用户权限。</span></p><h2><a name="vpn" class="md-header-anchor"></a><span>VPN</span></h2><p><span>虚拟专用网络。两个局域网之间不通过网线，而是使用公网来传输数据，没有新架设的物理线路，所以叫【虚拟】。</span><br/><span>VPN主要的技术包括：</span><br/><span>隧道技术：数据从局域网的网关出来后，通过公网，传入另一个局域网的网关。在公网中怎么走并不重要，主要是两边网关的设置。</span><br/><span>身份认证技术，以及数据封装技术。</span></p><p><span>客户端连上VPN后，会被分配一个服务方的内网地址，这样客户端相当于一台服务方的内网的计算机，可以访问内网资源，而不需要将内网资源都连上公网。</span><br/><span>连上VPN后，客户端至少有两个ip地址，本机中的路由表会判断通往哪个目的ip时该使用哪个源ip。</span></p><h3><a name="常用的vpn隧道协议" class="md-header-anchor"></a><span>常用的VPN隧道协议</span></h3><p><strong><span>L2TP</span></strong><span>：属于第二层隧道协议，也就是数据链路层中的隧道协议，它的名字就是Layer Two Tunneling Protocol。它将数据封装成PPP协议的数据帧再传输。</span><br/><strong><span>GRE</span></strong><span>：属于第三层隧道协议，也就是网络层的隧道协议。它将数据包封装成IP数据包再传输。现在网络层都是ip协议，所以GRE就是在数据包的私网ip外再套一层公网ip。</span><br/><strong><span>IPSec</span></strong><span>：属于第三层隧道协议。GRE和L2TP没有加密功能，IPSec可以和GRE或L2TP配合使用，提供加密功能，也可以直接单独使用。</span></p><h3><a name="vpn和shadowsocks" class="md-header-anchor"></a><span>VPN和shadowsocks</span></h3><p><span>VPN连接后会被分配一个IP，走VPN通道的数据都是通过这个IP发送。</span><br/><span>shodowsocks是一个软件，使用socks5协议，将数据发送到socks5代理服务器。socks5在OSI七层模型的会话层。shodowsocks开启系统代理后，IE的Internet选项的局域网设置中，可以看到代理服务器被设置成了本机。所有使用系统代理的软件的流量都会通过shadowsocks走代理服务器。</span></p><h2><a name="设备/概念" class="md-header-anchor"></a><span>设备/概念</span></h2><h3><a name="网关" class="md-header-anchor"></a><span>网关</span></h3><p><span>网关就是一个网络到另一个网络的关口。日常生活中，我的笔记本需要访问互联网是通过路由器，所以路由器的ip就是一个网关。而路由器会用另一个网关连接另一个网络，也就是说一个路由器有两个ip地址。默认网关就是当计算机不知道数据需要发到哪个网络时，就会将其发给默认网关。</span><br/><span>日常生活中经常用到的是，在浏览器中输入默认网关地址来进入无线路由器的设置页面。</span></p><h3><a name="交换机" class="md-header-anchor"></a><span>交换机</span></h3><p><span>连接多个设配，通过MAC地址寻址。有的交换机也有路由功能。</span></p><h3><a name="路由器" class="md-header-anchor"></a><span>路由器</span></h3><p><span>通过IP寻址。可以给局域网的设备自动分配IP地址，而且路由器可以使用PPPoE拨号上网，也带有防火墙功能。</span><br/><span>路由器可以连接不同网段的网络。</span></p><h3><a name="防火墙" class="md-header-anchor"></a><span>防火墙</span></h3><p><span>控制数据出入的局域网设备。一般防火墙都有路由功能。防火墙和路由器这两个有合一的趋势。</span></p><h3><a name="调制解调器" class="md-header-anchor"></a><span>调制解调器</span></h3><p><span>用以把计算机的数字型号转换成模拟信号，通过电话线/光线传输后，与另一台计算机通信。</span><br/><span>光猫就是连接光纤的调制解调器。</span><br/><span>无线路由猫是具有猫与无线路由功能的一体机。</span><br/><span>现在的猫都带有拨号功能和路由功能。</span></p><h2><a name="常见协议" class="md-header-anchor"></a><span>常见协议</span></h2><p><strong><span>ARP</span></strong><span>：和IP协议一样在网络层，根据IP地址，找到他的MAC地址。</span><br/><strong><span>RARP</span></strong><span>：根据MAC地址，找到IP地址。</span><br/><strong><span>NAT</span></strong><span>：让多个私有IP使用同一个公共IP来访问互联网，一般家庭中的多个设备都是使用同一个公共IP的，当然具体还要看运营商。</span><br/><strong><span>DHCP</span></strong><span>：动态主机配置协议，自动分配IP地址给网络中的主机，路由器就可以担任DHCP服务器，需要在计算机中设置ip地址为【自动获取】，而不是【手动指定】。windows中用ipconfig /all可以看到默认网关和DHCP服务器是同一个ip</span></p></div>
</body>
</html>